package com.catsic.zcjc.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.catsic.base.BaseService;
import com.catsic.zcjc.condition.EquipDataCondition;
import com.catsic.zcjc.entity.EquipData;
import com.catsic.zcjc.form.EquipDataForm;
import com.catsic.zcjc.form.StationCountForm;

public interface EquipDataService extends BaseService<EquipData,String>{
	
	/**
	 * 通过Id查询
	 * @param 
	 */
	public EquipData findById(String id);
	
	/**
	 * 通过Id取得查询
	 * @param 
	 */
	public EquipDataForm findEquipDataById(String id);
	
	/**
	 * queryByStationId:通过站点ID查询该站点所有设备数据，转换为FORM
	 * @author xietiebing
	 * @param organId
	 * @return
	 */
	public List<EquipDataForm> queryByStationId(String stationId);
	
	/**
	 * findByStationId:通过站点ID查询该站点所有设备数据
	 * @author xietiebing
	 * @param organId
	 * @return
	 */
	public List<EquipData> findByStationId(String stationId);
	
	/**
	 * queryByEquipId:通过设备ID查询该站点所有设备数据，转换为FORM
	 * @author xietiebing
	 * @param organId
	 * @return
	 */
	public List<EquipDataForm> queryByEquipId(String equipId);
	
	/**
	 * findByEquipId:通过设备ID查询该站点所有设备数据
	 * @author xietiebing
	 * @param equipId
	 * @return
	 */
	public List<EquipData> findByEquipId(String equipId);
	
	/**
	 * 分页查询设备数据
	 * @param condition
	 * @param pageable
	 * @return
	 */
	public Page<EquipDataForm> findAll(EquipDataCondition condition, Pageable pageable);
	
	/**
	 * 统计设备数据
	 * @param condition
	 * @return
	 */
	public int count(EquipDataCondition condition);
	
	
	/**
	 * 查找站点实时数据
	 * @param condition
	 * @return
	 */
	public EquipDataForm findNowData(EquipDataCondition condition);
	
	
	/**
	 * 统计热力图数据
	 * @param condition
	 * @return
	 */
	public List<StationCountForm> findByCount(String type,EquipDataCondition condition);
}
